//加载页面CSS
require([_isMobile ? "r_css!css/m.default.css" : "r_css!css/default-beta.css"]);
// _isMobile && require(["r_css!css/m.default.css"]);
define("core", ["common", "jQuery", "r_css", "jQuery.notify", "appConfigBus"], function(jSouper, $, cssAPI) {
	require(["coAjax", "Cookies", "href", "queryString", "browser", "jSouper_page", "title", "page_onload", "mobile_jump", "eventManager", "dataFormat"],
		function(coAjax, Cookies, href, QueryString, browser, jSouper_page, title, page_onload, mobile_jump, eventManager, dataFormat) {
			/*
			 * 整理配置信息
			 */
			App.set("config", appConfig);
			/*
			 * 开启分页功能
			 */
			jSouper_page();
			/*
			 * AJAX的统一错误处理
			 */
			var _old_error_handle = dataFormat.errorHandle;
			dataFormat.errorHandle = function(errorCode, xhr, errorMsg) {
				if (errorMsg === "商家登录超时，请重新登录") {
					function _login_success() {
						alert("success", "商家重新授权成功");
					};

					function _login_error() {
						alert("error", "授权失败：" + errorMsg);
						_login();
					};

					function _login(argument) {
						myPrompt("请重新输入登录密码进行授权，“取消”则退出登录", function(password) {
							var username = App.get("bus_loginer.info.name");
							coAjax.post(appConfig.bus.login, {
								name: username,
								password: password
							}, _login_success, _login_error);
						}, function() {
							href.jump("/admin-login.html")
						});
					};

					_login();
				} else {
					_old_error_handle.apply(this, arguments)
				}
			}
		});
	// /*
	//  * 使用History API实现无刷新跳转
	//  */
	// if (window.history && history.pushState) {
	// 	var _ajax_get_page;
	// 	var _current_page_info;
	// 	var _map_cache = {};
	// 	require(["jQuery", "href"], function($, href) {
	// 		$("body").on("click", "a", function(e) {
	// 			if (location.host == this.host) {
	// 				href.jump(this.href);
	// 				e.preventDefault();
	// 				return false;
	// 			}
	// 		});
	// 	});
	// }
	/*
	 * 重写弹出框
	 */
	require(["color"], function(notify_color_map) {
		var _alert = window.alert;


		window.alert = function(type, alert_str) {
			var args = arguments;
			var result;
			if (args.length === 1) {
				alert_str = type;
				if (typeof alert_str === "string") {
					result = $.Notify.show(alert_str);
				} else {
					result = $.Notify(alert_str);
				}
			} else if (args.length >= 2) {
				var time = (args[2] === undefined) ? 3000 : args[2];
				if (typeof type === "object") {
					var className = type.className;
					var css_style = type.style;
				} else {
					var type_info = type.split(" ");
					var class_color = notify_color_map[type_info.shift()];
					var css_style = {
						background: class_color,
						color: "white"
					};
					var className = type_info.join(" ");
				}
				result = $.Notify({
					style: css_style,
					className: className,
					content: alert_str,
					timeout: time
				});
			}
			return result;
		};
		// window.alert = function() {
		// 	var args = arguments;
		// 	var result;
		// 	if (args.length === 1) {
		// 		var alert_str = args[0];
		// 		if (typeof alert_str === "string") {
		// 			result = $.Notify.show(alert_str)
		// 		} else {
		// 			result = $.Notify(alert_str);
		// 		}
		// 	} else if (args.length >= 2) {
		// 		var type = args[0];
		// 		var alert_str = args[1];
		// 		var time = (args[2] === undefined) ? 3000 : args[2];
		// 		var class_color = color[type];
		// 		result = $.Notify({
		// 			style: {
		// 				background: class_color,
		// 				color: "white"
		// 			},
		// 			content: alert_str,
		// 			timeout: time
		// 		});
		// 	}
		// 	return result;
		// }
	});
	/*
	 * 版本管理
	 */
	window.appConfig = appConfigBus;

	require(["versionManage"], function(versionManage) {
		versionManage("bus_version", "appConfigBus");
	});
	return jSouper;
});